<?php
//Ultima verificacion: 13-10-2014 ; 21-11-2014 ; 04-03-2015
class M_destinatarioxnotificacion extends CI_Model {
	function _construct(){
		//Call the Model constructor
		parent::_construct();
	}
	
	//Este metodo se utiliza cuando queremos obtener los destinatarios cargados a una notificacion en el formulario CREAR NOTIFICACION
	function buscarActivosEtapa1($restriccion=null){
		$consulta = $this->db->query("SELECT destinatarioxnotificacion.*
									  FROM destinatarioxnotificacion
									  WHERE destinatarioxnotificacion.estado<>-1 AND destinatarioxnotificacion.estado<>1 $restriccion
									  ORDER BY destinatarioxnotificacion.tipoDestinatario ASC");
		return($consulta);
	}
	
	//Este metodo se utiliza cuando queremos obtener los destinatarios activos cargados a una notifiacion en el formulario MODIFICAR NOTIFICACION
	function buscarActivosEtapa2($restriccion=null){
		$consulta = $this->db->query("SELECT destinatarioxnotificacion.*
									  FROM destinatarioxnotificacion, notificacion
									  WHERE destinatarioxnotificacion.idNotificacion=notificacion.idNotificacion AND 
											destinatarioxnotificacion.estado=1 AND notificacion.estado<>-1 $restriccion
									  ORDER BY destinatarioxnotificacion.tipoDestinatario ASC");
		return($consulta);
	}
	
	//Este metodo se utiliza para eliminar un destinatario tanto en el formulario CREAR COMO MODIFICAR NOTIFICACION
	function eliminar($idDxN=null, $idDestructor=null){
		$consulta = $this->db->query("UPDATE `destinatarioxnotificacion`
									 SET `estado` = -1,
										 `idDestructor` = ". $this->db->escape($idDestructor) ."
							         WHERE `destinatarioxnotificacion`.`idDxN` = " . $this->db->escape($idDxN) . " LIMIT 1");
		return($this->db->affected_rows());
	}
	
	//Este metodo se utiliza para crear un destinatario en el formulario CREAR NOTIFICACION
	function crearEtapa1($hash=null, $tipoDestinatario=null, $idDestinatario=null, $estado=null, $idCreador=null){
		$this->db->query("INSERT INTO `destinatarioxnotificacion` (`idDxN`,`hash`,`tipoDestinatario`,`idDestinatario`,`fechaCreacion`,`estado`,`idCreador`) VALUES 
														          (NULL,".$this->db->escape($hash).",".$this->db->escape($tipoDestinatario).",".$this->db->escape($idDestinatario).",now(),".$this->db->escape($estado).",".$this->db->escape($idCreador).")");
		return($this->db->affected_rows());
	}
	
	//Este metodo se utiliza para crear un destinatario en el formulario MODIFICAR NOTIFICACION
	function crearEtapa2($idNotificacion=null, $tipoDestinatario=null, $idDestinatario=null, $estado=null, $idCreador=null){
		$this->db->query("INSERT INTO `destinatarioxnotificacion` (`idDxN`,`idNotificacion`,`tipoDestinatario`,`idDestinatario`,`fechaCreacion`,`estado`,`idCreador`) VALUES 
														          (NULL,".$this->db->escape($idNotificacion).",".$this->db->escape($tipoDestinatario).",".$this->db->escape($idDestinatario).",now(),".$this->db->escape($estado).",".$this->db->escape($idCreador).")");
		return($this->db->affected_rows());
	}
	
	//Este metodo se utiliza para activar todos los destinatarios de una notificacion recien creada. Se usa en el formulario CREAR NOTIFICACION.
	function activar($idNotificacion=null, $hash=null, $estado=null){
		$consulta = $this->db->query("UPDATE `destinatarioxnotificacion` 
									 SET `idNotificacion` = ". $this->db->escape($idNotificacion) .",
										 `estado` = ". $this->db->escape($estado) ."
							         WHERE `destinatarioxnotificacion`.`hash` = " . $this->db->escape($hash) . " AND 
									       `destinatarioxnotificacion`.`estado` = -2");
		return($this->db->affected_rows());
	}
	
	//Este metodo se utiliza cuando queremos validar que un destinatario de notificacion pasado por la url sea existente.
	function get($idDxN=null){
		$consulta = $this->db->query("SELECT *
									  FROM destinatarioxnotificacion
									  WHERE estado<>-1 AND idDxN=".$this->db->escape($idDxN)."
									  LIMIT 1");
		return($consulta);
	}
}
?>